# 使用官方 Node.js 16 镜像作为构建环境
FROM node:16-alpine AS builder

# 设置工作目录
WORKDIR /app

# 复制 package.json 和 package-lock.json
COPY package*.json ./


# 安装依赖
RUN npm ci

# 复制项目文件
COPY . .

# 构建应用
RUN npm run build

# 生产环境
FROM node:16-alpine

# 设置工作目录
WORKDIR /app

# 复制 package.json 和 package-lock.json
COPY package*.json ./

# 安装生产环境依赖
RUN npm ci --only=production

# 从构建阶段复制构建后的文件
COPY --from=builder /app/dist ./dist
# 复制必要的配置文件
COPY --from=builder /app/.env.example ./.env
COPY --from=builder /app/scripts ./scripts

# 暴露端口
EXPOSE 3000

# 设置环境变量
ENV NODE_ENV=production

# 启动命令
CMD ["node", "dist/server.js"]
